Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Реализация как по мне сложного запросса! (iNF)
Author Message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Mar 24, 2006 1:56 am (написано за 1 секунду)
   Post subject: Реализация как по мне сложного запросса!
Reply with quote

Вот вчем проблема: у меня есть две таблицы, я выбираю из каждой таблицы данные(по определенному алгоритму), после выборки они должны заносится в третью таблицу, заносится они должны так - есть 6 дней недели(будни + суббота), данные из первой и второй таблицы должны заносится в эти дни(без разницы в какой точно день) но с лимитом в 9 записей и соответственно не перезаписывать друг друга... подскажите как решать эту проблему?
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Fri Mar 24, 2006 2:09 am (спустя 13 минут; написано за 25 секунд)
   Post subject:
Reply with quote

iNF, Вы серьёзно думаете, что дали понятное описание задачи?

И покажите то, что Вы уже написали — как пытались эту задачу решить.
Back to top
View user's profile Send private message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Mar 24, 2006 11:32 am (спустя 9 часов 22 минуты; написано за 10 минут 38 секунд)
   Post subject:
Reply with quote

Есть две таблицы:
1. id | Prepod | Predmet
    1 | Vasya | 1 (Русский)
    2 | Petya | 3 (Математика)
    3 | Inna | 2 (Физика)

2. id | Predmet_nazva
    1 | Русский
    2 | Физика
    3 | Математика

На основе этих данных долна формироватся третья таблица ... Берется Vasya (ID=1) берется предмет какой он може преподовать и заносится в третью таблицу, потом Petya(ID=2) также берется предмет какой он препадает и заносится также в третью таблицу и так до конца - вот сдесь я не пойму(не знаю) как правильно сделать запрос, тоесть чтоб данные заносились в третью таблицу произвольно(Vasya препадает во вторник - 5 урок, Petay в среду - 1 урок, Inna в понедельник - 3 урок) но с лимитом в 9 уроков, и чтоб они не перезаписывали друг друга ...
Что я сделал?!? ровным счетом не чего - создал таблицы, разработал алгоритм выборки из двух таблиц и все! Понимаю структуру, что как и куда надо сделать но не знаю как ... Нужна помощь Ваша!
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Fri Mar 24, 2006 8:12 pm (спустя 8 часов 39 минут; написано за 4 минуты 38 секунд)
   Post subject:
Reply with quote

iNF wrote:
разработал алгоритм выборки из двух таблиц и все!
Ну и продолжайте так же: разработайте алгоритм записи в третью таблицу.

Сначала словами все условия опишите (я, например, даже «словесно» не понял принцип, по которому должна вестись запись...), а потом попытайтесь то же самое программно описать.
Back to top
View user's profile Send private message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sun Mar 26, 2006 11:21 am (спустя 1 день 15 часов 9 минут; написано за 41 секунду)
   Post subject:
Reply with quote

bæv wrote:
Сначала словами все условия опишите (я, например, даже «словесно» не понял принцип, по которому должна вестись запись...), а потом попытайтесь то же самое программно описать.
не ужели все так запутанно?!?!?! МНЕ ХОТЯБІ ПОДСКАЗКУ КАКУЮ, ГДЕ КОПАТЬ И ЧТО КОПАТЬ???
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Mar 27, 2006 9:24 am (спустя 22 часа 2 минуты; написано за 3 минуты 30 секунд)
   Post subject:
Reply with quote

iNF wrote:
не ужели все так запутанно?
Если Вы про Ваше описание задачи, то - да, крайне запутано. Вы бы исходную постановку задачи дали, вроде: "Есть список предметов (учебних дисциплин), есть список преподавателей по этим предметам. Каждый преподаватель читает один предмет, но каждый предмет могут читать несколько преподавателей. Требуется составить корректное расписание занятий на 6 дней, из расчета 9 уроков в день".
Задача так стоит? Или нет?
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Mar 27, 2006 9:27 am (спустя 3 минуты; написано за 1 минуту 20 секунд)
   Post subject:
Reply with quote

мне кажется, тут еще надо как-то учитывать число параллельных классов, вроде "Математик Семёнов ведет занятия у 7А, 8Б, 9В, 10Г, 11Д"
Back to top
View user's profile Send private message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Mar 27, 2006 8:38 pm (спустя 11 часов 10 минут; написано за 7 секунд)
   Post subject:
Reply with quote

Maus wrote:
Если Вы про Ваше описание задачи, то - да, крайне запутано. Вы бы исходную постановку задачи дали, вроде: "Есть список предметов (учебних дисциплин), есть список преподавателей по этим предметам. Каждый преподаватель читает один предмет, но каждый предмет могут читать несколько преподавателей. Требуется составить корректное расписание занятий на 6 дней, из расчета 9 уроков в день".
Задача так стоит? Или нет?
Все точно так :) ...
Maus wrote:
мне кажется, тут еще надо как-то учитывать число параллельных классов, вроде "Математик Семёнов ведет занятия у 7А, 8Б, 9В, 10Г, 11Д"
Нет, там все для одной группы будет ...
ЗЫ так что есть какие-то идеи?
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Mar 29, 2006 2:35 pm (спустя 1 день 17 часов 57 минут; написано за 48 секунд)
   Post subject:
Reply with quote

iNF
Имхо, на одном SQL этого не сделать - нужно использовать какой-нибудь язык программирования типа PHP.
Back to top
View user's profile Send private message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 29, 2006 7:47 pm (спустя 5 часов 12 минут; написано за 1 минуту 21 секунду)
   Post subject:
Reply with quote

Maus wrote:
нужно использовать какой-нибудь язык программирования типа PHP
Я его как раз и использую ... Сам запрос вродебы можно реализовать спомощью SQL ...
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Mar 29, 2006 8:10 pm (спустя 22 минуты; написано за 1 минуту 9 секунд)
   Post subject:
Reply with quote

ну, елси забивтаь массив на PHP, то потом написать запрос для вставки значений из массива в базу -не проблема :)
Back to top
View user's profile Send private message
INF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 29, 2006 10:32 pm (спустя 2 часа 21 минуту; написано за 22 секунды)
   Post subject:
Reply with quote

Maus wrote:
ну, елси забивтаь массив на PHP, то потом написать запрос для вставки значений из массива в базу -не проблема :)
Если можно поконкретней что и куда ... или примерчик дайте
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Mar 30, 2006 4:04 pm (спустя 17 часов 32 минуты; написано за 5 минут 7 секунд)
   Post subject:
Reply with quote

INF
например:
Code (php): скопировать код в буфер обмена
$week = array (www.php.net/array)(1 => array (www.php.net/array)(),
              2 => array (www.php.net/array)(),
              3 => array (www.php.net/array)(),
              4 => array (www.php.net/array)(),
              5 => array (www.php.net/array)(),
              6 => array (www.php.net/array)()
              );

//
$teachers = array (www.php.net/array)(
            0=>array('name'=>'Gendou Ikari', 'count'=>4),
            1=>array('name'=>'Evanoff', 'count'=>4),
            2=>array('name'=>'ms. Misato Katsuragi', 'count'=>3),
            3=>array('name'=>'ms. Ritsuko Akagi', 'count'=>2)
            );
foreach ($week as $k=>$day) {
        shuffle (www.php.net/shuffle)($teachers);
    reset (www.php.net/reset)($teachers);
    for($i=1;$i<=9;$i++) {
            //
        //...
        $curr_teacher = false;
        while ($curr_teacher = current (www.php.net/current)($teachers)) {
            if ($curr_teacher && 0<$curr_teacher['count']) {
                $teacher_key = key (www.php.net/key)($teachers);
                next (www.php.net/next)($teachers);
                    break;
            }
            next (www.php.net/next)($teachers);
        }
        //
        if (!$curr_teacher || 0==$curr_teacher['count']) {
            $day[$i] = '---';
        } else {
            $day[$i] = $curr_teacher['name'];
            $teachers[$teacher_key]['count']--;
        }
    }
    $week[$k] =$day;
}
print_r (www.php.net/print_r)($week);
имхо, всякие кривые системы типа Nuke или phpBB пишутся примерно так же, то есть сикось-накось.
Back to top
View user's profile Send private message
iNF
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Mar 31, 2006 11:58 am (спустя 19 часов 54 минуты; написано за 58 секунд)
   Post subject:
Reply with quote

Огромное спасибо за код. Вот только я не понимаю тут и половины :( - будем разбиратся.
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML